from flask import Flask
from flask.json import dumps,jsonify

# 假设的模型类
class User:
    def __init__(self, id, username, email):
        self.id = id
        self.username = username
        self.email = email

    def to_dict(self):
        return {
            'id': self.id,
            'username': self.username,
            'email': self.email,
        }

# 自定义序列化函数
def custom_serializer(obj):
    if isinstance(obj, User):
        return obj.to_dict()
    raise TypeError(f"An object of type '{obj.__class__.__name__}' is not JSON serializable")

# 创建 Flask 应用实例
app = Flask(__name__)

# 设置自定义的 JSON 序列化函数
app.json.default = custom_serializer

# 定义路由和视图函数
@app.route('/users/<int:user_id>')
def get_user(user_id):
    user = User(user_id, f'username{user_id}', f'user{user_id}@example.com')
    # 使用 jsonify 来创建 JSON 响应
    # 自定义的序列化函数将自动应用于序列化过程
    return jsonify(user)

# 启动 Flask 应用
if __name__ == '__main__':
    app.run(debug=True)